using net_work.Common.Request;
using net_work.Common.Result;
using net_work.Data.DTO.Cou;
using net_work.Data.Entity.Cou;

namespace net_work.IService.Cou;

public interface ITeacherTeachingService
{
    /// <summary>
    /// 分页查询教师授课
    /// </summary>
    /// <param name="request">查询参数</param>
    /// <returns>分页结果</returns>
    Task<PagedResult<TeacherTeaching>> GetTeacherTeachingsPagedAsync(PagedRequest request);

    /// <summary>
    /// 根据教师授课ID查询教师授课信息
    /// </summary>
    /// <param name="teacherTeachingId">教师授课ID</param>
    /// <returns>教师授课信息</returns>
    Task<TeacherTeaching?> SelectByIdAsync(long teacherTeachingId);

    /// <summary>
    /// 插入教师授课
    /// </summary>
    /// <param name="teacherTeachingAddRequest">新增教师授课实体</param>
    /// <returns>新增教师授课ID</returns>
    Task<long> InsertTeacherTeaching(TeacherTeachingAddRequest teacherTeachingAddRequest);

    /// <summary>
    /// 更新教师授课信息
    /// </summary>
    /// <param name="teacherTeachingUpdateRequest">更新教师授课信息</param>
    /// <returns>是否成功</returns>
    Task<int> UpdateTeacherTeaching(TeacherTeachingUpdateRequest teacherTeachingUpdateRequest);

    /// <summary>
    /// 删除教师授课
    /// </summary>
    /// <param name="ids">教师授课ID集合</param>
    /// <returns>是否成功</returns>
    Task<int> DeleteTeacherTeachingByIds(List<long> ids);
}